window.ROOT = "";
(function() {
	
	jQuery("#hierarchy").select2().trigger("change");
	// 增加按钮，弹窗清空
	jQuery('.addBtn').on('click', function() {

		jQuery('#userName').val('');
		jQuery('#contactType').val('');
		jQuery('#email').val('');
		jQuery('#userName').removeAttr('readonly');
		jQuery('#accountName').val('');
		jQuery('#accountName').removeAttr('readonly');
		//jQuery("#orderNum").val('');
		jQuery("#id").val('');
		jQuery("#name").val('');
		jQuery("#superior").val('');
		jQuery("#areaName").val('');
		jQuery("#areaName1").val('');
		jQuery("#areaName2").val('');
		jQuery("#areaName3").val('');
		jQuery("#position").val('');
		jQuery('#select-men').val('');
		jQuery("#hierarchy").select2().val('').trigger("change");
		
		//账户密码、角色
		jQuery('#accountId').val('');
		jQuery('#password').val('');
		jQuery('#role').val('');

		//备注
		jQuery('#memo').val('');
		
		jQuery("#userModal").modal('show');

	});

	jQuery('#select-men').on('change', function() {
		var data=jQuery('#select-men').select2('data');
		jQuery('#empId').val(jQuery('#select-men').val());
		jQuery('#contactType').val(data[0].contactType);
	});

	// /根据部门下拉框内容过滤片区信息////
	jQuery('#superior').trigger('change');// /自动触发下拉框

	jQuery('#superior').change(
			function() {
				var superior = jQuery("#superior").val();
				var url = window.rootPath + "/ui/user/getAreaOption/"
						+ "?superior=" + superior;
				jQuery.ajax({
					url : encodeURI(url),
					cache : false,
					type : 'get',
					dataType : 'json',
					success : function(data) {
						var saleAreas = data.saleAreas;
						jQuery("#areaName").empty();
						for (var i = 0; i < saleAreas.length; i++) {
							var option = $("<option>").text(
									saleAreas[i].areaName).val(saleAreas[i].id)
							jQuery("#areaName").append(option);
						}
					}
				})
			});
	var serverData = {};
	var serverTable;
	jQuery(document).ready(function() {
		serverTable = jQuery('#dataTable').DataTable({
			"serverSide" : true,
			"ordering" : false,
			"ajax" : {
				"dataType" : "json",
				"type" : "get",
				"cache" : false,
				"url" : window.rootPath
						+ '/ui/user/getpage',
				"data" : function(d) {
					return $.extend({}, d,
							serverData);
				}
			},
			columns : [
				{
					data : null,
					defaultContent : ""
				},
				{
					data : 'name'
				},
				{
					data : 'orderNum'
				},
				{
					data : 'sex'
				},
				{
					data : 'contactType'
				},
				{
					data : 'email'
				},
				{
					data : 'post.title'
				},
				{
					data : 'memo'
				},
				{
					data : null,
					defaultContent : "",
					render : function(data,
							type, full,
							meta) {
						var operate = '<button type="button" class="btn btn-sm btn-info editBtn" title="编辑"><i class="fa fa-pencil"></i></button>'
								+ '<button type="button" class="btn btn-sm btn-info delBtn" title="删除"><i class="fa fa-remove"></i></button>';

						return operate;

					}
				} ],
			"drawCallback" : function(oSettings) {
				var k = 0;
				var total = oSettings.aiDisplay.length
						+ oSettings._iDisplayStart;
	
				for (var i = oSettings._iDisplayStart, iLen = total; i < iLen; i++) {
					$(
							'td:eq(0)',
							oSettings.aoData[oSettings.aiDisplay[k]].nTr)
							.text(i + 1);
					k++;
				}
	
				serverTable.off('click', 'tr');
				serverTable.on('click','tr',function(event) {
					event = event || window.event;
					var target = event.target || event.scrElement;
					var data = serverTable.row(this).data();

					if (target.className.indexOf('fa-remove') != -1|| target.className.indexOf('delBtn') != -1) {
						deleteModule(data);
					}

					if (target.className.indexOf('fa-pencil') != -1 || target.className.indexOf('editBtn') != -1) {
						editModule(data);
					}

					return;
				});
			}
		});
		var deleteModule = function(data) {
			if (!data)
				return;
			$.springLemonDialog({
				content : '确认删除用户：' + data.name + '？',// 确认文本
				clickButton : function(sender, modal, index) {// 按钮事件处理
					// index:0 确认 1：取消
					// sender:事件源 如按钮，sender.html()可得到按钮文字如：取消
					$("#right").mLoading("show");
					if (index == 0) {
						var url = window.rootPath + "/ui/user/"
								+ data.id;
						jQuery.ajax({
							url : encodeURI(url),
							cache : false,
							type : "delete",
							dataType : "json",
							success : function(data) {
								if(data.code == 0){
									serverTable.draw(false);
								}
								message(data.msg);
								$("#right").mLoading("hide");
							}
						});
					}
					$(this).closeDialog(modal);
				}

			});

		};

		var editModule = function(data) {
			if (!data)
				return;

			jQuery('#id').val(data.id);
			jQuery('#userName').val(data.name);
//			jQuery('#userName').prop('readonly', 'readonly');
			jQuery('#contactType').val(data.contactType);
			jQuery('#email').val(data.email);
			jQuery('#memo').val(data.memo);
			if(data.post){
				$("#post").val(data.post.id);	
			}
			var sex = data.sex;
			if (sex == "男") {
				gel("sex1").checked = true;
			}
			if (sex == "女") {
				gel("sex2").checked = true;
			}
			function gel(id) {
				return document.getElementById(id);
			}
			/*var url = window.rootPath
					+ "/ui/user/getAreaOption/" + "?superior="
					+ data.saleArea.superior;
			jQuery.ajax({
				url : encodeURI(url),
				cache : false,
				type : 'get',
				dataType : 'json',
				success : function(d) {
					var saleAreas = d.saleAreas;
					jQuery("#areaName").empty();
					for (var i = 0; i < saleAreas.length; i++) {
						var option = $("<option>").text(
								saleAreas[i].areaName).val(
								saleAreas[i].id)
						jQuery("#areaName").append(option);
					}
					jQuery("#areaName").val(data.saleArea.id);
				}
			})
			jQuery('#superior').val(data.saleArea.superior);*/
			//jQuery('#orderNum').val(data.orderNum);
			jQuery('#position').val(data.position);
			var hierarchy = data.hierarchy;
			if(typeof(hierarchy) != 'undefined'){
				jQuery("#hierarchy").select2().val(hierarchy.id).trigger("change");
			}else{
				jQuery("#hierarchy").select2().val('').trigger("change");
			}
			
			//账户密码与角色
			//jQuery('#password').val('');
			//jQuery('#role').val('');
			getAccount(data.id);
			
		};
		// 查询
		jQuery('.searchBtn').on('click', function() {
			serverData.key = jQuery("#search").val();
			serverTable.draw();
		});
		// 撤销查询
		jQuery('.resetBtn').on('click', function() {
			jQuery('#search').val('');
			serverData.key = '';
			serverTable.draw();
		});
		// 保存按钮
		jQuery('.saveBtn').on('click',function() {
			if (jQuery("#userEditForm") && !jQuery("#userEditForm").Validform({tiptype : 3,showAllError : true}).check(false)) {
				return;
			}
			var userId = jQuery("#id").val();
			/*var name = jQuery(
					'#select-men option:selected')
					.text();*/
			var option = $(
					"input[type='radio']:checked")
					.val();
			var name = jQuery('#userName').val();
			var accountName = jQuery('#accountName').val();
			var contactType = jQuery('#contactType').val();
			var email=jQuery('#email').val();
			var userMemo = jQuery('#memo').val();
			//var orderNum = jQuery('#orderNum').val();
			if (option == "male") {
				jQuery("#sex").val("男");
			}
			if (option == "female") {
				jQuery("#sex").val("女");
			}
			var sex = jQuery('#sex').val();
			var post = jQuery('#post').val();
			var hierarchy = jQuery("#hierarchy").val();
			//账户信息
			var password = jQuery('#password').val();
			var memo = password;
			var roleId = jQuery('#role').val();
			var account = {
				"id" : jQuery('#accountId').val(),
  	  			"password": sha256_digest(password),
  	  			"accountName": accountName,
  	  			"isEnabled": "true",
  	  			"user": {
  	  				"id": userId
  	  			},
  	  			"role": {
  	  				"id": roleId
  	  			},
  	  			"memo" : memo
   	        };
			 
			var userandaccount;
			// 判断id，新增还是编辑
			if (userId == "") {
				var api = window.rootPath+ "/ui/user/save?hierarchy="+hierarchy;
				var user = {
					"name" : name,
					"contactType" : contactType,
					"email" : email,
					//"orderNum" : orderNum,
					"sex" : sex,
					"memo": userMemo
				};
				
				if (post){
					user.post = {
							"id" : post
						};
				}
				userandaccount = {
					"user" : user,
					"account" : account
				}
				$("#right").mLoading("show");
				jQuery.ajax({
					type : 'post',
					url : api,
					data : JSON.stringify(userandaccount),
					dataType : 'json',
					contentType : 'application/json;charset=utf-8',
					success : function(data) {
						message(data.msg);
						if(data.code != '99'){
							jQuery('#userModal').modal('hide');
							serverTable.draw(false);
						}
//						message(data.msg);
						$("#right").mLoading("hide");
					}
				});
			} else {
				var obj = document.getElementsByName("sex");
				for (var i = 0; i < obj.length; i++) {
					if (obj[i].checked) {
						var value = obj[i].value;
					}
				}
				if (value == "male") {
					jQuery("#sex").val("男");
				} else if (value == "female") {
					jQuery("#sex").val("女");
				}

				var user = {
					"id" : jQuery('#id').val(),
					"name" : jQuery('#userName').val(),
					"sex" : jQuery('#sex').val(),
					//"orderNum" : orderNum,
					"contactType" : contactType,
					"email" : email,
					"memo": userMemo
				};
				if (post){
					user.post = {
							"id" : post
						};
				}
				userandaccount = {
						"user" : user,
						"account" : account
					}
				var url = window.rootPath
						+ '/ui/user/save'
						+ "?editId=" + userId+"&hierarchy="+hierarchy;
				$("#right").mLoading("show");
				jQuery.ajax({
					url : encodeURI(url),
					type : 'post',
					data : JSON.stringify(userandaccount),
					dataType : 'json',
					contentType : 'application/json;charset=utf-8',
					success : function(data) {
						message(data.msg);
						if(data.code == 0){
							jQuery('#userModal').modal('hide');
							serverTable.draw(false);
						}
						$("#right").mLoading("hide");
					}
				});
			}
		});

	});
	
	//获取账户信息
	function getAccount(userId){
		var url = window.rootPath + '/ui/user/getAccount/' + userId;
		jQuery.ajax({
			url : encodeURI(url),
			type : 'post',
			data : '',
			dataType : 'json',
			contentType : 'application/json;charset=utf-8',
			success : function(data) {
				//账户密码与角色
				if(data.account){
					jQuery('#accountName').val(data.account.accountName);
					jQuery('#accountName').prop('readonly', 'readonly');
					jQuery('#accountId').val(data.account.id);
					jQuery('#password').val(data.account.memo);
					showSelectOption('#role',data.account.role.name)
				}else{
					jQuery('#accountName').val('');
					jQuery('#accountName').removeAttr('readonly');
					jQuery('#accountId').val('');
					jQuery('#password').val('');
					jQuery('#role').val('');
				}
				jQuery('#userModal').modal('show');
			}
		});
	}
	jQuery(document).ready(function() {
		// 获取增加弹窗用户下拉框数据
		var url = window.rootPath + "/ui/user/getmen";
		jQuery.ajax({
			type : 'get',
			url : encodeURI(url),
			dataType : 'json',
			contentType : 'application/json;charset=utf-8',
			success : function(d) {
				var men = [];
				var length = d.men.length;
				if (!jQuery.isEmptyObject(d)) {
					for (var i = 0; i < length; i++) {
						if (d.men[i].name != null) {
							men.push({
								id : d.men[i].empId,
								text : d.men[i].name,
								contactType : d.men[i].contactType
							});
						}

					}
				}

				$(".js-example-basic-single").select2({
					language : 'zh-CN',

					data : men
				});
			}
		});
	});
	/**
	 * 文件上传
	 */
	avatarUpload = function() {

	};
	jQuery(".uploadBtn").on("click", function() {
		avatarUpload();
	});

})();